﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Demo1
{
    /// <summary>
    /// IncValue2 的摘要说明
    /// </summary>
    public class IncValue2 : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";

            string ispostback = context.Request["ispostback"];

            //为什么但是用div在服务器中取不出来值呢，因为不是服务器来读取客户的网页，而是浏览器收集客户在表单中输入的值，

            //然后形成请求参数发给服务器处理程序，由于没有把div当前的innerText发给服务器，所以服务器无法得知当前的值，

            //也不要幻想有办法能将div的innerText提交给服务器，因为只有设定了name的input，textare,select的value属性值才会被提交给服务器

            string value = "0";

            if (ispostback == "true")
            {

                value = context.Request["num1"];

                int i = Convert.ToInt32(value);

                i++;

                value = i.ToString();

            }

            string fullpath = context.Server.MapPath("IncValue2.htm");

            string content = System.IO.File.ReadAllText(fullpath);

            content = content.Replace("@value", value);

            context.Response.Write(content);

            /*
             * 注释：非表单元素无法将客户端的元素传递给服务器端，
             * 即使是表单元素也只能传递value值，
             * 对于其他属性值比如:背景颜色，大小等也都是无法传递的，
             * 因此对于这些值都要存在隐藏字段中，
             * 这就是asp.net中的viewState的实现原理。
             * 
             */
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}